#include "LutColorHSL16d88.h"

using namespace boost::gil;

LutColorHSL16d88::LutColorHSL16d88()
{
    m_color=hsl16d88_pixel_t(0,0,0);
}
LutColorHSL16d88::~LutColorHSL16d88()
{}

void
LutColorHSL16d88::setValues(uint32_t C1, uint32_t C2, uint32_t C3)
{
    //TODO test bound before assign value
    at_c<0>(m_color)=C1;
    at_c<1>(m_color)=C2;
    at_c<2>(m_color)=C3;
}

uint32_t
LutColorHSL16d88::getC1i() const
{
    return static_cast<uint32_t>(at_c<0>(m_color));
}
uint32_t
LutColorHSL16d88::getC2i() const
{
    return static_cast<uint32_t>(at_c<1>(m_color));
}
uint32_t
LutColorHSL16d88::getC3i() const
{
    return static_cast<uint32_t>(at_c<2>(m_color));
}
void
LutColorHSL16d88::setValues(float C1, float C2, float C3)
{
    //TODO test bound before assign value and scale ?
    at_c<0>(m_color)=C1;
    at_c<1>(m_color)=C2;
    at_c<2>(m_color)=C3;
}
float
LutColorHSL16d88::getC1f() const
{
    return static_cast<float>(at_c<0>(m_color));
}
float
LutColorHSL16d88::getC2f() const
{
    return static_cast<float>(at_c<1>(m_color));
}
float
LutColorHSL16d88::getC3f() const
{
    return static_cast<float>(at_c<2>(m_color));
}
